Method and system for inserting a data object into a computer-generated document using a text instruction

ABSTRACT

For inserting a data object as for example a mathematical formula or special characters like Greek characters into a text document, instruction symbols representing the data object are inputted in the form of text characters into the text document. A text portion containing instruction symbols is selected, and the instruction symbols contained in the selected text portion are converted into a data object represented by the instruction symbols. The invention allows rapid input of data objects into the text document, in particular simple mathematical formulae or single special characters without entering a formula editor or the like.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates generally to generating documentsusing a computer application, and in particular to inserting a dataobject like a mathematical formula or special characters like Greekcharacters into a computer-generated document as for example a textdocument.

[0003] 2. Description of Related Art

[0004] Computer word processing applications typically are used togenerate a document, referred to as a computer-generated document, thatmay contain text data, tables, diagrams, etc. and often mathematicalformulae or special characters like Greek characters. Mathematicalformulae and special characters are particularly important for documentslike scientific articles and the like. Similarly, HTML Web pagegenerators generate a document that is effectively a text-baseddocument.

[0005] For creating a mathematical formula within a text document 100(FIG. 1), so called formula editors were used. Typically, the formulaeditor was opened from within the computer word processing applicationby clicking on a menu bar icon, or alternatively using a menu.

[0006] The formula editor contained a large number of displayed keyfields and list boxes representing different elements of mathematicalformulae like brackets, integrals, fraction bars, matrices, so forth.For inserting special characters, like for example the Greek characterΣ, it was necessary to enter a list box containing the specialcharacters.

[0007] The user created the desired formula 101 using these keys andlist boxes. After having completed the formula, the user returned to theoriginal document and pasted the formula as an imported object into thedocument. If the user recognized an error in the formula, the user againopened the formula editor, corrected the error, and returned to theoriginal document.

[0008] Using a formula editor, it was possible to create nearly everydesired mathematical formula; however, the operation was complicated andtime consuming in particular for simple formulae like simple fractionsor square roots, which appeared frequently in a text document. Editingof the formula always required entering the formula editor andsubsequently returning into the original document.

[0009] To simplify the entry of formulas, some formula editors permittedthe use of script like phrases that the formula editor converted to thecorresponding mathematical expression. However, while this assisted inentering a formula in some situations by minimizing the use of keyfields and list boxes, the general problem of having to utilize theformula editor persisted.

[0010] In an attempt to minimize some of the entry and exit issues, itwas known to select an insert option from a menu bar of an applicationand the formula editor capability was opened so that the user and insertcould edit a formula without leaving the application, only the menus andthe object bars were changed. After the formula editor capability wasused to enter the data object, double clicking on the embedded objectlaunched the formula editor capability so that the formula could beedited. Again, this was done without leaving the application.

SUMMARY OF THE INVENTION

[0011] According to the principles of this invention, inserting orediting a data object like a mathematical formula or special characterin a computer-generated document is facilitated and sped up incomparison to the prior art methods that required use of a formulaeditor. A method of inserting a data object into a computer-generateddocument includes inputting instruction symbols representing the dataobject into the document in the form of text characters, selecting thedocument portion containing instruction symbols, and converting theinstruction symbols contained in the selected document portion into adata object represented by the instruction symbols.

[0012] With the present invention it is possible to input the dataobject, which may be a mathematical formula or a Greek, Chinese, Korean,Cyrillic, Arabic, Hebrew, or Japanese character, or any other characteror symbol, and which can be represented by certain instruction symbols,into the document using standard characters, which are also used forcreating a text document. The user does not need to leave the documentand can input the instruction symbols in the same way as the textcharacters, for example by typing on a keyboard.

[0013] If the selected document portion contains characters, which arenot part of an instruction these characters remain unchanged during theconverting operation. Those unchanged characters may be variables likea, b, or x in a mathematical formula.

[0014] In one embodiment, the converted data object is inserted into thedocument at the position of the selected document portion. The inserteddata object is formatted depending on a surrounding content, forexample, the same as the format of text in the same line. The inserteddata object is automatically stored with the document in thisembodiment. The inserted data object is reconvertible into the originaldocument portion for editing purposes.

[0015] The document portion including the instruction symbols may beinput by means of speech decoding. In this case, the present inventionis particularly advantageous since the instruction symbols (in contrastto the mathematical symbol itself) may be expressed orally.

[0016] One embodiment of the invention allows fast and easy generationand editing of a data object like a mathematical formula or specialcharacters. This is particularly useful for simple and short dataobjects and for data objects, which the user needs frequently and forwhich the user easily memorizes the instruction symbols representingthese data objects. For inserting the object, the user needs not toenter a special tool like a formula editor and then return to theoriginal document. Another advantage of the present invention is that itallows the input of the data objects by speech decoding since theinstruction symbols can be expressed orally.

[0017] Another embodiment of the invention provides a computer programfor inserting, on a computer, a data object into a document, comprisinginserting instruction symbols representing the data object in the formof text characters into the document, selecting a document portioncontaining instruction symbols, and converting the instruction symbolscontained in the selected document portion into the data objectrepresented by the instruction symbols.

[0018] Program code may be embodied in any form of a computer programproduct. A computer program product comprises a medium configured tostore or transport computer readable code, or in which computer readablecode may be embedded. Some example of computer program products areCD-ROM discs, ROM cards, floppy discs, magnetic tapes, computer harddrives, servers on a network and signals transmitted over a networkrepresenting computer readable program code.

[0019] According to a still further embodiment, the present inventionprovides a software tool providing instructions for inserting a dataobject into a computer-generated document by inserting instructionsymbols inputted in the form of text characters and representing thedata object into the document, converting instruction symbols containedin a selected document portion into the data object represented by theinstruction symbols, inserting the converted data object into thedocument, and providing signals for displaying the document includingthe converted data object.

[0020] According to another embodiment, the present invention provides acomputer-generated document including a data object generated by aconversion of instruction symbols inputted in the form of textcharacters, wherein the data object is reconvertible into theinstruction symbols.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021]FIG. 1 is a schematic representation of a prior art documentcontaining a mathematical formula.

[0022]FIG. 2A is an example of a text document containing instructionsymbols representing a data object according to the present invention.

[0023]FIG. 2B is a schematic representation of the text document shownin FIG. 2A after conversion of a data object.

[0024]FIG. 2C is a process flow diagram for the method of the presentinvention.

[0025]FIG. 3A is a schematic illustration of a computer system to whichthe present invention may be applied.

[0026]FIG. 3B is a schematic illustration of a client-server computersystem in which the present invention may be transferred and/ordownloaded.

DETAILED DESCRIPTION

[0027] According to the principles of this invention, a user enters aformula in a computer-generated document by simply typing in textrepresenting the formula and selecting this text. In response to theselection of the text representing the formula, the text representingthe formula is automatically converted to a mathematical formula andinserted in the computer-generated document as a data object.

[0028] Consequently, with this invention, a user generating a documenton a computer no longer has to continually open a formula editor toenter a formula. Rather, the user simply continues to input textinformation in the same form as the rest of the document including textthat describes the formula. Similarly, a user can type in textrepresenting a special character, e.g., a Greek, Chinese, Korean,Cyrillic, Arabic, Hebrew, or Japanese character, or any other characteror symbol, and use the method of this invention to automatically convertthe text representing the special character to a data object that isinserted in the computer-generated document.

[0029] According to the principles of this invention, in a text-basedformula generation method 205, a user inputs text in an input textoperation 221 (FIG. 2C) into a computer-generated document 200A (FIG.2A), which is displayed on a display screen 210 by an application 319(FIG. 3A) executing on a computer processor 312C. In operation 221,(FIG. 2C) the user inputs the text using, for example, a keyboard ininput units 320C (FIG. 3A) of a computer system 300C, which isrepresentative of a computer system input device. The text, however, canbe input using another suitable input technique and/or input device,e.g. voice recognition processing or the like.

[0030] Input text operation 221 transfers to formula check operation222. If the user does not want to input a formula, formula checkoperation 222 returns to input text operation 221. Conversely, if theuser wants to input a formula into document 200A, formula checkoperation 222, which is carried out by the user, transfers to inputinstruction operation 223.

[0031] In input instruction operation 223, the user inputs the formulausing text instruction symbols via one of input units 320C. For example,as illustrated in FIG. 2A, the user inputs the text portion “x equalsqrt a over b”, which includes the text instruction symbols, equal,sqrt, and over. The user is not required to change modes of input, andis not required to access a formula editor and type the formula into theeditor, but rather the user simply continues inputting characters in aconventional fashion.

[0032] After completing the text input for the desired formula in inputinstruction operation 223, the user selects the text formula instructionin select instruction 224. In this embodiment, the user first highlightstext formula instruction 212 and then moves cursor 211 to an equationicon 213. With cursor 211 on equation icon 213 and with text formulainstruction 212 highlighted, the user clicks a mouse button to completeselect instruction operation 224. In more general terms, selectinstruction operation 224 identifies a text formula instruction 212 fora generate formula method 230. Operations 221 to 224 form a text formulainstruction generation and identification method 220.

[0033] In generate formula method 230, formula check operation 231determines whether the user selected a text formula instruction. In thisembodiment, check operation 231 determines whether the user clicked onequation icon 213. If the user selected a text formula instruction,check operation 231 transfers to convert instruction operation 233 andotherwise to continue operation 232. In one embodiment, check operation231 is part of an event handler of application 319, and if the event isnot a text formula instruction selection input, event handling continuesin continue operation 232 and the application continues as in the priorart.

[0034] However, if a text formula instruction selection input eventoccurred, processing transfers to convert instruction operation 233.Convert instruction operation 233 cuts the selected text formulainstruction and pastes the selected text formula instruction into a callto a formula editor that can process the text formula instruction. Forexample, a prior art formula editor is modified to receive a textformula instruction and output a data object that is a correspondingformula. The modified formula editor executes in the background and theuser is unaware of its existence. Upon the modified formula editorreturning a data object, which in this example is a mathematical formula${x = {\sqrt{\frac{a}{b}} \cdot}},$

[0035] combinations of characters in the text formula instruction, whichdo not represent text instruction symbols, like the variables x, a and bin this example, remain unchanged. Hence, the creation of a formulacontaining variables is possible. Upon return of the mathematicalformula, i.e., the data object, processing transfers from convertinstruction operation 233 to insert formula operation 234.

[0036] In insert formula operation 234, the data object, i.e., formula214, is inserted in document 200B at the location from which the textformula instruction sequence was cut, and is displayed on display unit210. Preferably, the formula is formatted like the surrounding text sothat the visual appearance of text document 200B containing the formulais optimized. However, in one embodiment, the user can include textinstructions to format any part, or all of the formula in a specificformat, which may be different from the format of the surrounding text.

[0037] Following insert formula operation 234, document complete checkoperation 235 determines whether the user has entered an instruction toindicate the document is complete. If a document complete instructionhas been issued, the finished document is saved. Preferably, theinserted data object is stored together with the text document in amemory, e.g., memory 311B, which is this case is located in a fileserver 300B. If the document is not complete, check operation 235returns to input text operation 221.

[0038] Those of skill in the art will appreciate that the method of thisinvention can be multithreaded. For example, one thread permits the userto continue entering additional text, while another thread executes thetext formula instruction. Also, as illustrated in FIGS. 2A and 2B, thecontent of a text document 200A, may include in addition to the textdata also other data like diagrams, graphics or tables. The textdocument also may be, for example, an HTML- or XML-document. Inaddition, the present invention is not restricted to text documents.

[0039] Hence, according to the principles of this invention, if a userwishes to input a special data object like a formula into the textdocument, the user enters the formula in the form of a text formulainstruction that includes text instruction symbols and variables. Forexample, the formula $\frac{a}{b}$

[0040] is represented by “a over b”. Here, the characters “a” and “b”represent variables and “over” is a text instruction symbol representinga fraction bar. Other examples of text formula instructions are “sqrt a”for {square root over (a)}, “3 ind 1” for 3₁ and “int (a,b) Omega dt”for ∫_(a)^(b)Ωt.

[0041] From the last example, it is obvious that the present inventionis also very useful for inserting special characters like Greekcharacters into a text document. “pi” may represent the Greek characterπ, “alpha” may represent α or “lambda” may represent λ. It is alsopossible to distinguish between small and capital letters, “Lambda” mayfor example represent Λ. It is immediately apparent that typing theinstruction symbols is in many cases much easier and faster than using aspecial program like a formula editor or a list box for Greek symbols.The same can apply to other special characters like Chinese, Korean,Cyrillic, Arabic, Hebrew, or Japanese characters, or any other characteror symbol characters. In another embodiment, a character, e.g., apercent sign, is used before the name of the character to assist indistinguishing between when the user wants the text word, and when theuser wants the Greek or other symbol.

[0042] Table 1 lists a number of different formula symbols that can begenerated in using a text formula instruction. Notice that in eachinstance, the text formula instruction utilizes only characters that arefound on a conventional computer keyboard. The last column in a row ofTable 1 gives a simple example of a text instruction for a formula thatutilizes the symbol presented in the first column of the row. In thelast column, a, b, x, y, and z are used as variables. The textinstruction symbol is in a bold font. TABLE 1 Symbol Presented Exampleof in text formula Formula Type Description instruction + Unary PlusSign +a operator − Unary Minus Sign −a operator ± Unary Plus Minus Signplusminus a operator ∓ Unary Minus Plus Sign minusplus a operator

Unary Logical neg a operator negation |

| Unary Absolute value abs a operator/ function ! Unary Factorial fact aoperator/ function {square root} Unary Square root sqrt a operator/function ^(n){square root} Unary n-th root nroot n a -- operator/ wheren is the function desired nth root of a Unary User-defined uoper % thetax operator operator = Binary Equal a = b operator/ relation ≠ Binary Notequal a neq b, or operator/ a <> b relation + Binary Addition a + boperator ⊕ Binary Add symbol in a oplus b operator circle − BinarySubstraction a − b operator ⊖ Binary Subtract symbol a ominus b operatorin circle * Binary Multiply a * b operator • Binary Dot product a cdot boperator ⊙ Binary Dot product in a odot b operator a circle × BinaryMultiplication a times b operator

Binary Multiply symbol a otimes b operator in circle / Binary Division a/ b operator / Binary Slash for a slash b operator quotient set slash cbetween two characters

/

Binary Slash between a wideslash b operator two characters, of which theleft character is superscript, and the right is subsript

\

Binary Back Slash a widebslash b operator between two characters, ofwhich the right character is superscript, and the left subscript

Binary Slash in circle a odivide b operator ÷ Binary Division a div boperator +E,uns a Binary Division/ a over b b operator Fraction

Binary Logical AND a and b, or operator a & b

Binary Logical Or a or b, or operator a | b ∘ Binary Concatenate a circb operator | Binary Divides 5 divides 30 operator

Binary Does not Divide 7 ndivides 30 operator > Binary Greater than a gtb, or operator/ a > b Relation < Binary Less than a le b, or operator/ a< b Relation ≧ Binary Greater than or a gt b, or operator/ equal to a >=b Relation

Binary Greater than- a gtslant b operator/ equal to Relation

Binary Much greater a gg b, or operator/ than a >> b Relation ≦ BinaryLess than or a le b, or operator/ equal to a <= b Relation

Binary Less than-equal a leslant b operator/ to Relation

Binary Much less than a 11 b, or operator/ a << b Relation

Binary Is defined as/ a def b operator/ by definition Relation equal to≡ Binary Is equivalent/ a equiv b operator/ congruent to Relation ≈Binary Is a approx b operator/ approximately Relation ˜ Binary Issimilar to a sim b operator/ Relation ≅ Binary Is similar or a simeq boperator/ equal to Relation ∝ Binary Is proportional a prop b operator/to Relation ⊥ Binary Is orthogonal a ortho b operator/ to Relation ∥Binary Is parallel to a parallel b operator/ Relation

Binary Correspondence a transl b operator/ symbol image of Relation

Binary Correspondence a transr b operator/ symbol original Relation of ∈Binary Is contained in a in b operator/ Set operator ∉ Binary Is not anotin b operator/ contained in Set operator ⊂ Binary Subset a subset boperator/ Set operator

Binary Subset or equal a subseteq b operator/ to Set operator

Binary Not subset to a nsubset b operator/ Set operator

Binary Not subset or a nsubseteq b operator/ equal to Set operator ⊃Binary Superset a supset b operator/ Set operator

Binary Superset or a supseteq b operator/ equal to Set operator

Binary Not superset to a nsupset b operator/ Set operator

Binary Not superset or a nsupseteq b operator/ equal to Set operator

Binary Contains a owns b, or operator/ a ni b Set operator ∪ BinaryUnion of Sets a union b operator/ Set operator ∩ Binary Intersection ofa intersection operator/ Sets b Set operator \ Binary Difference asetminus b, operator/ between Sets or Set operator a bslash b X_(n)Binary x with index n x sub n operator X^(n) Binary n-th power of x xsup n operator → Binary Toward a toward b operator/ Relation Binary Userdefined x boper % theta opeator binary operator y --used to insert greekcharacter theta Σ Operator Sum Sum x sub i Π Operator Product prod x subi

Operator Coproduct coprod x sub I lim Operator Limit lim x towardinfinity lim inf Operator Limit inferior liminf lim sup Operator Limitsuperior limsup

Operator/ Physics hbar Physics Constant

Operator/ Physics lambdabar Physics Constant ∃ Operator/ Existential aexists b Logic quantifier, there is at least one ∀ Operator/ Universal aforall b Logic quantifier, for all   Operator/ Arrow with a drarrow bLogic double line to the left

Operator/ Arrow with a drarrow b Logic double line to the right

Operator Arrow with a dlrarrow b Logic double line to the left and tothe right

Operator Up arrow a uparrow b ↓ Operator Down arrow a downarrow b ←Operator Left arrow a leftarrow b → Operator Right arrow a rightarrow b∫ Operator Integral in xdx ∫∫ Operator Double Integral iint f (x,y) dxdy∫∫∫ Operator Triple Integral iiint f (x,y,z) dxdydz

Operator Curve integral lint

Operator Double curve llint integral

Operator Triple curve lllint integral Operator User defined oper % unionoperator from {i = 1} to n x_{i} Operator Range from . . . from {i = 1}to to n Operator Lower limit of from {i = 1} an operator Operator Upperlimit of to n an operator sin() Function Sine sin x cos() FunctionCosine cos x tan() Function Tangent tan x cot() Function Cotangent cot xarcsin() Function Arcsine arcsin x arccos() Function Arccosine arccos xarctan() Function Arctangent arctan x arccot() Function Arccotangentarccot x sinh() Function Hyperbolic sine sinh x cosh() FunctionHyperbolic cosh x cosine tanh() Function Hyperbolic tanh x tanget coth()Function Hyperbolic coth x cotangent arsinh() Function Area hyperbolicarsinh x sine arcosh() Function Area hyperbolic arcosh x cosine artanh()Function Area hyperbolic artanh x tanget arcoth() Function Areahyperbolic arcoth x cotangent exp() Function General exp x exponentialfunction ln Function Natural ln x logarithm log Function Logarithm log xbase 10 e^(□) Function Natural func {circumflex over ( )}{x} exponentialfunction IN Mathematical Natural number setn a symbol

Mathematical Integer setz a symbol

Mathematical Rational number setq a symbol

Mathematical Real number setr a symbol

Mathematical Complex number setc a symbol

Mathematical Cardinal number aleph a symbol

Mathematical back epsilon backepsilon symbol Ø Mathematical Empty setemptyset symbol

Mathematical Real part of a re a symbol complex number

Mathematical Imaginary part im a symbol of a complex number ∞Mathematical Infinity infinity, symbol or infty ∇ Mathematical Nablavector nabla x symbol ∂ Mathematical Partial partial x symboldifferentiation or set margin

Mathematical p function wp symbol ... Other symbol Three dots dotsaxisvertically in the symbol center

Other symbol Three dots dotsup, diagonally from or lower left todotsdiag upper right

Other symbol Three dots dotsdown diagonally from upper right to lowerleft ... Other symbol Three dots dotslow horizontally below

Other symbol Three dots dotsvert vertical □ Other symbol Placeholder <?>() Bracket with Normal round (a over b) grouping left and right oplus cfunction brackets [] Bracket with Normal left and [a over b] groupingright square oplus c function brackets

Bracket with Left and right icibracket . . . grouping double squarerdbracket function brackets {} Bracket with Left and right ibrace . . .grouping curly brackets, rbrace function set bracket Bracket withScalable curly . . . grouping set bracket on overbrace function top . .. Bracket with Scalable curly . . . grouping set bracket underbracefunction below . . . <> Bracket with Left and right langle . . .grouping pointed rangle function brackets <|> Bracket with Left andright langle . . . grouping pointed mline . . . function operator ranglebrackets <|> Bracket with Scalable left left langle grouping and right .. . mline function pointed . . . right operator rangle brackets | |Bracket with Left and right lline . . . grouping vertical lines rlinefunction ∥ ∥ Bracket with Left and right ldline . . . grouping doublelines rdline function └ ┘ Bracket with Left and right lfloor . . .grouping lines with rfloor function lower edges ┌ ┐ Bracket with Leftand right lceil . . . grouping lines with rceil function upper edgesBracket with Automatic grouping sizing of function brackets by puttingleft and right (left . . . right . . . ) up front, e.g., left(a over bright) or left lceil . . . right lceil. This way round, square, doublesquare, single, double, single, curley, pointed, and operator bracketscan be changed. ( Bracket, round left \( also bracket widowed, withoutgrouping function ) Bracket, Normal round \) also right bracket widowed,without grouping function [ Bracket, Normal left \[ also square bracketwidowed, without grouping function ] Bracket, Normal right \] alsosquare bracket widowed, without grouping function { Bracket, Left curly\lbrace, also bracket or, widowed, \{ without grouping function }Bracket, Right curly \lbrace, also bracket or, widowed, \} withoutgrouping function < Bracket, Left pointed \langle also bracket widowed,without grouping function > Bracket, Right pointed \rangle also bracketswidowed, without grouping function |... Bracket, Left vertical \llinealso line widowed, without grouping function ...| Bracket, Rightvertical \rline also line widowed, without grouping function ∥...Bracket, Left double \ldline also line widowed, without groupingfunction ...∥ Bracket, Right double \rdline also lines widowed, withoutgrouping function └ Bracket, Left line with \lfloor also lower edgewidowed, without grouping function ┘ Bracket, Right line with \rflooralso lower edge widowed, without grouping function ┌ Bracket, Left linewith \lceil also upper edge widowed, without grouping function ┐Bracket, Right line with \rceil also upper edge widowed, withoutgrouping function □_(□) Indexes and Right index _, or exponents (su sub,or b-and rsub superscript) □^(□) Indexes and Right exponent {circumflexover ( )}, or exponents (su sup, or b-and rsup superscript) _(□)□Indexes and Left index lsub exponents(su b-and superscript) ^(□)□Indexes and Left exponent lsup exponents (su b-and superscript)  Indexes and Exponent csup exponents(su directly above b-and a charactersuperscript)   Indexes and Index directly csub exponents (su below ab-and character superscript) Formatting Horizontal alignl, or alignment-- alignc, or left, center, alignr right Formatting Space/Blank ˜Formatting Small space/   small blank Formatting Newline newline □Formatting Binom binom □ □ Formatting Stack stack{x#y#z} □ □ □□Formatting Matrix matrix{a#b##c#d} □□ ’ Attribute Accent to the acute awith fixed right above a character character width — AttributeHorizontal bar bar a with fixed above a character character width

Attribute Upside down breve a with fixed roof above a charactercharacter width

Attribute Upside down check with fixed roof character width ° AttributeCircle above a circle a with fixed character character width . AttributeDot above a dot a with fixed character character width .. Attribute Twodots above ddot a with fixed a character character width ... AttributeThree dots dddot a with fixed above a character character width ‘Attribute Accent to the grave a with fixed left above a charactercharacter width

Attribute Roof above a hat a with fixed character character width ˜Attribute Tilde above a tilde a with fixed character character width →Attribute Vector arrow vec a with fixed above a character characterwidth

Attribute Horizontal bar underline a with below a variable charactercharacter width

Attribute Horizontal bar overline a with above a variable charactercharacter width

Attribute Horizontal bar overstrike a with through a variable charactercharacter width → Attribute Wide vector widevec a with arrow, adjustsvariable to the character character size width ˜ Attribute Wide tilde,widetilde with adjusts to the variable character size character width

Attribute Wide roof, widehat with adjusts to the variable character sizecharacter width Font Italics ital attributes Font Remove italics nitalicattributes Font Bold bold attributes Font Remove bold nbold attributesFont Phantom phantom attributes character Font Command to font sans aattributes change characters; first the font name (sans, serif, orattributes fixed) is entered, then the characters to be changed areentered. Font Command to size *2 font attributes change the font sans asize; first the size is entered, then the characters to be changed areentered; for the entered sizes arguments following the pattern n, +n, −n*n or /n can be indicated; size +n and −n are changed in points(pt); apercentage change to e.g. 17% must be entered as *1.17 Font The commandto color green attributes change the abc character color; first colorgreen the color name (blank, white, cyna, magenta, red, blue, green andyellow) is entered, then the characters to be changed are entered.

[0043] In addition to easy generation of a formula, the presentinvention includes an easy way to edit a data object like a mathematicalformula. The object is entered by, e.g., a mouse click, on the object,and then is reconverted into the text formula instruction containing thetext instruction symbols. The user edits the object by editing the textformula instruction, selects the edited text formula instruction again,and converts the same again into a data object, as described above. Theediting operation can thus be carried out easily without entering aspecial tool like a formula editor.

[0044] Further, those of skill in the art will appreciate that whilememory 311C is illustrated as one unit that can include both volatilememory and non-volatile memory, in most computer systems, memory 311C isimplemented as a plurality of memory units. In more general terms,method 205 is stored in a computer readable medium, and when method 205is loaded from the computer readable medium into a memory of a device,the device is configured to be a special purpose machine that executesmethod 205. Alternatively, the application used to execute method 220,e.g., application 319, may be stored in one computer readable medium,and method 230 stored in another computer readable medium.

[0045] Also, herein, a computer program product comprises a mediumconfigured to store or transport computer readable code for method 205,method 220, and/or method 230 or in which computer readable code formethod 205, method 220, and/or method 230 is stored. Some examples ofcomputer program products are CD-ROM discs, ROM cards, floppy discs,magnetic tapes, computer hard drives, servers on a network and signalstransmitted over a network representing computer readable program code.

[0046] As illustrated in FIG. 3A, this storage medium may belong tocomputer system 300C itself. However, the storage medium also may beremoved from computer system 300C. For example, method 205 may be storedin either memory 311A or 311B that is physically located in a locationdifferent from processor 312C. The only requirement is that processor312C is coupled to memory. This could be accomplished in a client-serversystem, e.g. system 300C is the client and system 300B is the server, oralternatively via a connection to another computer via modems and analoglines, or digital interfaces and a digital carrier line.

[0047] For example, memory 311C could be in a World Wide Web portal,while the display unit and processor are in a personal digital assistant(PDA), or a wireless telephone, for example, system 300A. Conversely,the display unit and at least one of the input devices could be in aclient computer, a wireless telephone, or a PDA, while the memory andprocessor are part of a server computer on a wide area network, a localarea network, or the Internet. In this paragraph, method 205 thatincludes the application used to perform method 220, as well as method230 was considered. However, those of skill in the art will appreciatethat a similar description can be made for only method 220 and for onlymethod 230. Accordingly, this description and that which follows is notrepeated for each of the possible combinations and permutations forusing and storing methods 220 and 230.

[0048] More specifically, computer system 300C, in one embodiment, canbe a portable computer, a workstation, a two-way pager, a cellulartelephone, a digital wireless telephone, a personal digital assistant, aserver computer, an Internet appliance, or any other device thatincludes the components shown and that can execute method 205.Similarly, in another embodiment, computer system 300C can be comprisedof multiple different computers, wireless devices, cellular telephones,digital telephones, two-way pagers, or personal digital assistants,server computers, or any desired combination of these devices that areinterconnected to perform, method 205 as described herein. See, forexample, FIG. 3A.

[0049] Accordingly, a computer memory refers to a volatile memory, anon-volatile memory, or a combination of the two in any one of thesedevices. Similarly, a computer input unit and a display unit refers tothe features providing the required functionality to input theinformation described herein, and to display the information describedherein, respectively, in any one of the aforementioned or equivalentdevices.

[0050] In view of this disclosure, method 230 and method 220 can beimplemented in a wide variety of computer system configurations. Inaddition, method 205 could be stored as different modules in memories ofdifferent devices. For example, method 205 could initially be stored ina server computer, and then as necessary, a module of method 205 couldbe transferred to a client device and executed on the client device.Consequently, part of method 205 would be executed on the serverprocessor, and another part of method 205 would be executed on theclient device. In view of this disclosure, those of skill in the art canimplement the invention of a wide-variety of physical hardwareconfigurations using an operating system and computer programminglanguage of interest to the user.

[0051] In yet another embodiment illustrated in FIG. 3B, method 205 isstored in memory 311B of system 300B. Stored method 205 is transferred,over network 315 to memory 311C in system 300C. In this embodiment,network interfaces 330B and 330C can be analog modems, digital modems,or a network interface card. If modems are used, network 315 includes acommunications network, and method 205 is downloaded via thecommunications network.

[0052] While the invention has been particularly shown with reference toa preferred embodiment thereof, it will be understood by those skilledin the art that various other changes in the form and details may bemade therein without departing from the spirit and scope of theinvention.

I claim:
 1. A method of inserting a data object into acomputer-generated document comprising: converting a selected textportion of said computer-generated document containing at least one textinstruction symbol into a data object; and returning said data objectfor insertion in said computer-generated document.
 2. The method ofclaim 1 further comprising: inserting said at least one text instructionsymbol in the form of text characters into the computer-generateddocument.
 3. The method of claim 2 further comprising: selecting saidtext portion of said computer-generated document containing said atleast one text instruction symbol.
 4. The method of claim 1 wherein thedata object comprises a mathematical formula.
 5. The method of claim 1wherein the data object comprises at least one Greek character.
 6. Themethod of claim 1 wherein text characters in the selected text portion,which do not form a text instruction symbol, remain unchanged during theconverting operation.
 7. The method of claim 1 further comprising:inserting the returned data object into the computer-generated documentat a position of the selected text portion.
 8. The method of claim 7wherein content surrounding the data object has a format, and saidmethod further comprises formatting the returned data object using saidformat.
 9. The method of claim 1 further comprising storing the dataobject with the computer-generated document.
 10. The method of claim 1wherein the data object is reconvertible into the text portionrepresenting the data object.
 11. The method of claim 1 wherein saidmethod is downloaded.
 12. The method of claim 1 wherein said method isstored on a first computer system and said computer-generated documentis stored on a second computer system.
 13. A computer program productfor inserting a data object into a computer-generated document, thecomputer program product comprising program code for: converting aselected text portion of said computer-generated document containing atleast one text instruction symbol into a data object; and returning saiddata object for insertion in said computer-generated document.
 14. Thecomputer program product of claim 13 further comprising program codefor: inserting said at least one text instruction symbol in the form oftext characters into the computer-generated document.
 15. The computerprogram product of claim 14 further comprising computer code for:selecting said text portion of said computer-generated documentcontaining said at least one text instruction symbol.
 16. The computerprogram product of claim 13 wherein the data object comprises amathematical formula.
 17. The computer program product of claim 13wherein the data object comprises at least one Greek character.
 18. Thecomputer program product of claim 13 wherein text characters in theselected text portion, which do not form a text instruction symbol,remain unchanged during the converting operation.
 19. The computerprogram product of claim 13 further comprising computer code for:inserting the returned data object into the computer-generated documentat a position of the selected text portion.
 20. The computer programproduct of claim 19 wherein content surrounding the data object has aformat, and said computer program product further comprises formattingthe returned data object using said format.
 21. The computer programproduct of claim 13 further comprising storing the data object with thecomputer-generated document.
 22. The computer program product of claim13 wherein the data object is reconvertible into the text portionrepresenting the data object.
 23. A computer-generated documentincluding a data object generated by a conversion of instruction symbolsinput in the form of text characters, wherein the data object isreconvertible into the instruction symbols.
 24. The document of claim 23wherein the data object comprises a mathematical formula or a specialcharacter.
 25. A computer system comprising: a processor; and a memory,coupled to said processor, storing a method, where upon execution ofsaid method on said processor, said method comprises: converting aselected text portion of said computer-generated document containing atleast one text instruction symbol into a data object; and returning saiddata object for insertion in said computer-generated document.
 26. Thecomputer system of claim 25 wherein said memory is coupled to saidprocessor by a network.